Hybrid systems are composed of different software and hardware system elements which together create the operational environment for the workloads. A hybrid system may include a main processor that is a general-purpose processing unit and one or more special hardware processing units that provide increase in computational power (referred to as accelerators). To exploit full potentials of hybrid systems one needs to appropriately run the workload on one or more of system elements within the hybrid system so as to optimize the overall performance. For example, compute intensive sections of a workload running on a processing power constrained system can potentially be offloaded to a multicore system thereby scaling the throughput. An example of hybrid system is the zBLC, where a z/OS machine is attached through network connections to multicore p or x machines.
The performance improvement achievable in hybrid systems is workload specific. Depending upon the particular software functions being offloaded to accelerator, different workloads may achieve different speedups. Since migration to hybrid systems involves cost and resources, customers need to fully appreciate the tradeoffs when switching from host-only to host-accelerator system. This will help them do a cost-benefit analysis of migrating their workloads to a hybrid system.
Workload migration between host and accelerator involves additional processor cycle consumption on the host as host needs to make a call to the accelerator and transfer the execution control. This may require making a RPC (Remote Procedure Call) or using another communication protocol. There is also a communication overhead as typically the accelerator and the host are connected through communication links like local area network (LAN), remote direct memory access (RDMA) or Peripheral Component Interconnect Express (PCIe). When studying workload performance with hybrid system these additional costs need to be accounted.
However, there is no known solution to predict end-to-end acceleration potential of workloads in hybrid environments. While some work has been done around static code analysis to quantify the fraction of code that can benefit from acceleration, those works are specific to workloads and fail to predict end-to-end application performance in hybrid environment. They also do not account for communication and network overhead associated with co-execution of workload on heterogeneous systems when predicting acceleration benefits.